const XLSX = require('xlsx');
const fs = require('fs');



const readExcel = async(path) => {
     // 读取文件
     const workbook = XLSX.readFile(path);
    
     // 获取第一个工作表
     const firstSheetName = workbook.SheetNames[0];
     const worksheet = workbook.Sheets[firstSheetName];
     
     // 将工作表转换为JSON
     const data = XLSX.utils.sheet_to_json(worksheet, {header: 1});
     
     return data
};

const dealDataToJson = (data) => {
  
    const header = data[0];
    const res = [];
    data.forEach((element, index) => {
        if (index) {
            res[index - 1] = {};
            header.forEach((headerItem , headerIndex) => {
                res[index - 1][headerItem] = element[headerIndex];
            })
        }
    });
    return {
        header,
        data: res
    };
};

const writeJsonToFile = (json) => {
    const jsonData = JSON.stringify(json, null, 2); // 使用2个空格进行缩进，使JSON更易读
    try {
        fs.writeFileSync('./static/data.json', jsonData, 'utf8');
    
    } catch (err) {
        console.error('数据写入失败:', err);
    }
}

const init = async () => {
    console.log('读取excel数据');
    const data = await readExcel('./static/data.xlsx');
    console.log('数据读取完成');
    console.log('开始数据处理');
    const json = dealDataToJson(data);
    console.log('数据处理完成');
    console.log('数据写入json');
    writeJsonToFile(json);
    console.log('数据写入完成');
};

init();
